package model.macro 
{
	/**
	 * ...
	 * @author Simon Baumgardt-Wellander
	 */
	public class FortressUpgrade 
	{
		static public const THICKENWALLS:FortressUpgrade = new FortressUpgrade("Thicken Walls", 2, 10);
		
		private var _cost:int;
		private var _bonusHP:int;
		private var _bonusArmor:int;
		private var _bonusArcherSlots:int;
		private var _bonusGarrisonSlots:int;
		private var _requiredTechs:Vector.<Tech>;
		private var _requiredBuildings:Vector.<Building>;
		private var _name:String;
		
		public function FortressUpgrade(name:String, cost:int = 0, bonusHP:int = 0, bonusArmor:int = 0, bonusArcherSlots:int = 0, bonusGarrisonSlots:int = 0, garrison_slots:int = 0, required_techs:Vector.<Tech> = null, required_buildings:Vector.<Building> = null) 
		{
			_name = name;
			_cost = cost;
			_bonusHP = bonusHP;
			_bonusArmor = bonusArmor;
			_bonusArcherSlots = bonusArcherSlots;
			_bonusGarrisonSlots = bonusGarrisonSlots;
			_requiredTechs = required_techs;
			_requiredBuildings = required_buildings;
		}
		
		public function get cost():int 
		{
			return _cost;
		}
		
		public function get bonusHP():int 
		{
			return _bonusHP;
		}
		
		public function get bonus_armor():int 
		{
			return _bonusArmor;
		}
		
		public function get bonus_archer_slots():int 
		{
			return _bonusArcherSlots;
		}
		
		public function get bonus_garrison_slots():int 
		{
			return _bonusGarrisonSlots;
		}
		
		public function get required_techs():Vector.<Tech> 
		{
			return _requiredTechs;
		}
		
		public function get required_buildings():Vector.<Building> 
		{
			return _requiredBuildings;
		}
		
		
	}

}